#ifndef DEFINES_H
#define DEFINE_H
//------------------------------------------------------------------------
#include <windows.h>
#include <stdio.h>
#include <map>
#include <string>
#include <vector>
#include <cassert>
#include <sstream>
#pragma warning(disable : 4251)
#pragma warning(disable : 4244)
//------------------------------------------------------------------------
#ifdef ENGINE_EXPORTS
	#define ENGINE_API __declspec(dllexport)
#else
	#define ENGINE_API __declspec(dllimport)
#endif // engine_exports
/*el concepto de  Smart_Pointer de la lib boost, es similar al singletone
evita que se puedan crear mas de una instancia del mismo objeto, esto lo utilizaremos
para evitar que se cargue mas de una vez una textura en memoria.
*/
#define DECLARE_SMART_POINTER(classname) \
	public:	\
		typedef boost::shared_ptr<classname> Ptr;
//------------------------------------------------------------------------
#define getA(c) (((c)&0xff000000)>>24)
#define getR(c) (((c)&0x00ff0000)>>16)
#define getG(c) (((c)&0x0000ff00)>>8)
#define getB(c) ((c)&0x000000ff)
#endif // defines_h
// uso shifting para devolver los componentes de un D3DCOLOR (un DWORD)
